function G=draw_game(G)
figure(G.figure);
hold on;

if(~isempty(G.before_draw_func)),
  feval(G.before_draw_func,G);
end;

hh={};
for k=1:G.N;
    P=G.P{k};
    hh{k}=draw_player(G,P,k);
    h=draw_player_trace(G,P,k);
end;

hh{G.N+1}=draw_game_trace(G);

if(~isempty(G.after_draw_func)),
  feval(G.after_draw_func,G);
end;

eval(G.pause)


for k=1:G.N+1;
    for h=hh{k},
        set(h,'Visible','off');
    end;
end;

hold off;
